'use strict';

//导入需要的模块，router、fs、path模块
let router = require('koa-router')();
let fs = require('fs');
let path = require('path');

//筛选此文件夹底下是.js的文件，且筛选出不是index.html的文件
function serarchFile(){
    //读取当前文件路径
    let files = fs.readdirSync(__dirname);
    //使用过滤器筛选出不是index.html的文件
    let filterFile = files.filter(filename =>{
        return filename.endsWith('.js') && filename !== 'index.js';
    });
    return filterFile;
}

//注册路由
function registerRouter(filterFile){
    //获取文件的绝对路径
    filterFile.forEach(item => {
        //获取路由所在路径
        let fullPath = path.join(__dirname,item);
        //导入路由
        let RouterObj = require(fullPath);
        //遍历循环路由对象
        for(let r in RouterObj){
            let type = RouterObj[r][0];
            let oi = RouterObj[r][1];
            //根据请求类型注册路由
            if(type === 'get'){
                router.get(r,oi);
            }
            else if(type === 'post'){
                router.post(r,oi);
            }
            else if(type === 'put'){
                router.put(r,oi);
            }
            else if(type === 'delect'){
                router.delect(r,oi);
            }else{
                console.log('请求类型错误，请重试！');
            }
        }
    });
}

//作为中间件暴露出去,中间件必须为一个函数
module.exports = function(){
    //调用函数serarchFile()
    let obj = serarchFile();
    //调用函数registerRouter,把obj传进去
    registerRouter(obj);
    //返回路由
    return router.routes();
}